Hi Jack,
A suggestion from someone who knows a little about the C language and not much about the KMotion libraries:
Before you called "DoPCFloat()", you did couple of "MoveAtVel()" calls. Don't you need to wait until they complete before proceeding?
For example from HomeSaved.c:
MoveAtVel(X0_AXIS,X0_DIST,speed); // move inside the limits a small amount
MoveAtVel(X1_AXIS,X1_DIST,speed); // different distances can be used to square the axis
while (!CheckDone(X0_AXIS) || !CheckDone(X1_AXIS)) ; // wait till done
I'm not sure this will solve the problem with "DoPCFloat()", but it might help.